In computer vision and computer graphics, object tracking and/or recognition is frequently performed to facilitate various applications. For example, mapping or navigation applications may use recognized objects in a camera's field of view to determine the location of an object and perform course corrections. As another example, augmented reality (AR) applications may augment real world images based on the positions and orientations of one or more objects in captured images.
In object detection or tracking applications, one or more keypoints or other salient features may be identified in one or more images. Typically, corner points, points with high contrast, high intensity, etc are favored for selection as keypoints. Once identified, the keypoints are then tracked across several frames of an image sequence to determine a pose (position and orientation) of the camera relative to the tracked object. Objects may be added, removed and/or altered in the image based on camera pose. Realism in the AR images, for example, may be enhanced when camera pose is accurately estimated. Keypoint based tracking assumes that one or more keypoints in a current image can be reliably tracked across several image frames. However, if an image includes a plurality of similar keypoints that are proximate to each other, ambiguity may arise during tracking because of inaccuracies in establishing correspondences between keypoints in one image and corresponding points in another image. Keypoint mismatches can lead to pose drift, image artifacts, etc thereby detracting from user experience.
Moreover, in many conventional approaches, the number of keypoints tracked may be relatively large. However, a larger number of keypoints is not necessarily a guarantor of tracking accuracy. For example, tracking accuracy may not be increased if proximate keypoints exhibit relatively high degrees of similarity. In addition, when a larger number of keypoints is used, as in many conventional schemes, computational overhead may be increased, performance and/or application response times may be sub-optimal, and power consumption may be increased—without achieving a concomitant increase in tracking accuracy.